<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="test1"></div>

<script crossorigin src="https://unpkg.com/react@17/umd/react.development.js"></script>
<script crossorigin src="https://unpkg.com/react-dom@17/umd/react-dom.development.js"></script>

<!-- jsx转为js -->
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

<script type="text/babel">
    // 字符串的ref，存在效率问题
    class Person extends React.Component {
        /*
            (1).通过onXxx属性指定事件处理函数(注意大小写)
                a.React使用的是自定义(合成)事件, 而不是使用的原生DOM事件 — 为了更好的兼容性
                b.React中的事件是通过事件委托方式处理的(委托给组件最外层的元素) —为了的高效
            (2).通过event.target得到发生事件的DOM元素对象 —不要过度使用ref
	    */


        input2

        // React.createRef()调用后返回一个容器，该容器可以存储被ref所标识的节点
        // 该容器一个对象只能存一个
        myRef = React.createRef()
        myRef2 = React.createRef()

        showData1 = () => {
            console.log(this.myRef)
            console.log(this.myRef.current)
        }
        showData2 = (event) => { // react 把事件源给我传过来了
            console.log(event)
            console.log(event.target.value)
        };

        render() {
            return (
                    <div>
                        <input id="input1" ref={
                            this.myRef
                        } type="text" placeholder="点击按钮提示"/>

                        <button onClick={this.showData1}>点我提示数据</button>

                        <input onBlur={this.showData2} type="text" placeholder="点击按钮提示"/>
                    </div>
            )
        }
    }

    ReactDOM.render(<Person name="tom1" age={18} sex="女"/>, document.getElementById("test1"))
</script>
</body>
</html>